package com.tengju.bff.interfaces.covercharge.intf;

import com.idanchuang.component.base.JsonResult;
import com.tengju.bff.interfaces.covercharge.dto.*;
import com.tengju.bff.interfaces.shared.ApiResponse;
import io.swagger.annotations.Api;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.util.List;


/**
 * 服务费账户相关接口
 */
public interface IAccountProvider {
    /**
     * 功能描述: <br>
     * 根据idCodeList批量获取账户信息
     *
     * @param req 获取账户信息
     */
    @RequestMapping(value = "/batchGetBalanceByIdCodes", method = RequestMethod.POST)
    ApiResponse<List<ServiceAccountDTO>> batchGetBalanceByIdCodes(@RequestBody QueryAccountReqDTO req);

    /**
     * 功能描述: <br>
     * 根据IDCode和类型获取账户信息
     *
     * @param req 获取账户信息
     */
    @RequestMapping(value = "/batchGetBalanceByIdCodeAndType", method = RequestMethod.POST)
    ApiResponse<ServiceAccountDTO> batchGetBalanceByIdCodeAndType(@RequestBody QueryAccountReqDTO req);

    /**
     * 功能描述: <br>
     * 根据IDCode和表id获取客戶明細
     *
     * @param req 获取账户信息
     */
    @RequestMapping(value = "/getCustomListFromIdCodeAndTableIdList", method = RequestMethod.POST)
    ApiResponse<List<ServiceCustomDetailDTO>> getListFromIdCodeAndTableIdList(@RequestBody QueryCustomDetailReqDTO req);

    /**
     * 功能描述: <br>
     * 获取客戶明細
     *
     * @param req 获取客戶明細
     */
    @RequestMapping(value = "/getCustomDetailList", method = RequestMethod.POST)
    ApiResponse<List<ServiceCustomDetailDTO>> getCustomDetailList(@RequestBody QueryCustomDetailReqDTO req);

    /**
     * 功能描述: <br>
     * 根据IDCode和表id获取管理明細
     *
     * @param req 获取账户信息
     */
    @RequestMapping(value = "/getManageListFromIdCodeAndTableIdList", method = RequestMethod.POST)
    ApiResponse<List<ServiceManageDetailDTO>> getManageListFromIdCodeAndTableIdList(@RequestBody QueryManageDetailReqDTO req);


    /**
     * 功能描述: <br>
     * 获取管理明細
     *
     * @param req 获取管理明細
     */
    @RequestMapping(value = "/getManageDetailList", method = RequestMethod.POST)
    ApiResponse<List<ServiceManageDetailDTO>> getManageDetailList(@RequestBody QueryManageDetailReqDTO req);

}
